﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common;
using System.Data;
using System.Data.SqlClient;

namespace DataLayer
{
    public static class DatAdmin
    {

        public static bool IsAdminGralEmpty(out int AdminId)
        {
            
            return (AdminId = LogIn("admin", " ") )> 0;
        }

        public static int LogIn(string User, string HashedPass)
        {
            List<Util.DBParameter> MisParams = new List<Util.DBParameter>();
            MisParams.Add(new Util.DBParameter("@User", User, DbType.String));
            MisParams.Add(new Util.DBParameter("@Pass", HashedPass, DbType.String));
            return int.Parse(Util.SQLCommandBuild("ValidateLogin", MisParams).ExecuteScalar().ToString());
        }

        public static int GetUsuarioId(string Username)
        {
            List<Util.DBParameter> MisParams = new List<Util.DBParameter>();
            MisParams.Add(new Util.DBParameter("@User", Username, DbType.String));
            return int.Parse(Util.SQLCommandBuild("ValidateLogin", MisParams).ExecuteScalar().ToString());
        }

        public static dsBoleto GetUsuarioAndFuncionalidad(int id)
        {
            //Cargo el Parametro en el manejador de params SQL.-
            Util.DBParameter IdUsr;
            IdUsr.dbType = System.Data.DbType.Int32;
            IdUsr.parameterName = "@IdUser";
            IdUsr.value = id;
            Util.DBParameter IdFunc = new Util.DBParameter();

            //Genero el SQLCommando con el Util Builder
            SqlCommand este = Util.SQLCommandBuild("UsuariosRolesFuncionalidadesGet", IdUsr);

            ///Genero el listado de tablas a donde cargar esta data.
            ///Quizas hay tablas innecesarias pero que vienen en el query...
            ///Se mandan igual para que no falle la consulta.
            List<string> Tablas = new List<string>();
            Tablas.Add("Usuario");
            Tablas.Add("Rol");
            Tablas.Add("Funcionalidad");
            Tablas.Add("Usuario_x_Rol");
            Tablas.Add("Funcionalidad_x_Rol");

            return Util.SelectSPtoDatasetSolve(este, Tablas.ToArray());
        }
    }
}
